The invention relates generally to communication with a personal data assistant (PDA) and, more particularly, to a method and apparatus for communicating between a PDA and computer.
A PDA is generally a portable device configured to store data and perform basic functions for a user to view, receive, transmit, store and consume data. Different types of PDAs are well known in the consumer electronics industry and are currently in widespread use. One popular device is the Palm Pilot™, made by Palm™. This device runs on a specialized operating system, known as PalmOS™. Other PDAs may be configured under different operating systems, such as the WindowsCE™ and the PocketPC™ that run under operating systems that are developed and sold by Microsoft Corporation™. These PDAs may offer internal software applications such as an address book for keeping names and addresses, a calendar for keeping schedules and important dates, a notebook for keeping notes, an Internet application for accessing the Internet to send and receive E-mail and other services, specialized applications for communicating with computer servers over a network and other applications.
Most conventional PDAs include the ability to communicate with a computer system via a network, such as an Ethernet. One method of performing such communication is to dial up a connection with a computer server that is connected to network via an infrared access point connected to a local area network (LAN). Such a connection is known as a LAN access point, or LAP. The protocol used to communicate with the server is known as the TCP/IP/PPP protocol. This is a protocol commonly used in the industry of data communications. This protocol requires a great deal of computer processing power in order to perform a data transfer. As a result, the transfer of data between the server and the PDA is cumbersome and slow.
To illustrate a practical application that utilizes a PDA, a restaurant may have its waiters use a PDA to take orders from customers and transmit the orders to the kitchen. A preparation cook can then view the orders on a computer screen, saving the waiter a trip to the kitchen to submit the order. Data may also be sent to other locations such as the cashier for producing a bill, a stock manager for tracking inventory, and other locations that may be helpful to the business.
Using a conventional system, the PDA application would typically open up a TCP connection with the remote computer by specifying the computer's Internet Protocol (IP) address or other identification. Requiring the PDA to know the computer's IP address is burdensome on the PDA and, more importantly, requires the PDA to either contain a large amount of IP addresses or to be reconfigured for every computer to which the user of the PDA wishes to communicate. The operating system of the PDA then opens up a PPP connection using a communication configuration, such as a LAP, or, more specifically, an infrared modem.
The communication operation requires a TCP/IP/PPP protocol data stack stored in the operating system of the PDA. This stack enables the PDA to generate data packets having TCP/IP/PPP headers associated with each packet. Such a header is standard protocol for communication between computers when interacting and sending data from one computer to another. The identification header of the TCP IP is typically 40 bytes of data for every data packet that is transmitted. The IP header is usually 20 bytes in size, and the TCP header is 20 bytes, totaling 40 bytes. In some configurations where compression of the TCP header is used, the TCP's 20 bytes may be reduced to 4 bytes, leaving a header with a total of 24 extra bytes required for each data packet transfer. If PPP protocol is used for encoding, there are 4 extra bytes to add to the header, giving 44 bytes in the standard header, or 28 bytes in a header with a compressed TCP. This requires the use of the PDA's memory capacity, which may be a large burden on the PDA, especially since PDAs are typically small hand held devices. This burden is also a bit unreasonable, since the interaction between the PDA and the computer is typically not an interaction using reciprocal dialog, but merely an operation of uploading and downloading data packets.
Moreover, the protocol lays a tremendous burden on the microprocessor within the PDA, which is typically a small, specialized microprocessor, designed to perform particular tasks. In particular, the AHDLC encoding procedure and the CRC checksum procedure are a large burden on the PDA's microprocessor. Such burdens lessen the ability of a PDA designer to keep the PDA device small, yet still have adequate processing power.
If the AHDLC encoding is used, a PPP header is required. The PPP connection is made by negotiating a communication protocol and channel between the PDA and the computer via the LAP. The PPP header, typically 4 bytes in size, requires an encoding operation to be made to each byte of the entire block of data to be sent. The reason for the PPP connection is that, in conventional communication protocols, bytes 00 hex through 20 hex must be encoded. The reason for this is that, historically, these bytes were used in serial telephone modem communications for control bytes, leaving them unavailable for use as data bytes. So, for example, for every 256 bytes used, 32 of those bytes are not available for use and must be encoded if they are to be used as data. Encoding the bytes differentiates them from the 00 through 20 bytes that may be used for control instructions.
For example, if 1500 byte data packets are to be sent, including the TCP and IP header, the time needed to perform the PPP connection for each data packet transmission is t=[f(x)×1500], where f(x) is the encoding operation. The result of this operation is an extra byte for every byte encoded, giving 3,000 bytes that need to be that need to be operated on. Since 32 of the 256 Hex bytes must be encoded, the extra bytes generated would be approximately [32/256×1500×2]=300. This extra data is a burden on the device memory, requiring more memory space to store the data. It is also a burden on the processor, which must spend the extra time to encode the data, byte by byte, in order to transmit the entire data block. The resulting amount of data is 1500+300=1800 bytes to be transferred from the PDA to the computer or other device.
The CRC checksum operation, part of an error check procedure between devices, also requires a mathematical operation to be performed on each byte of the data packet being sent. For example, if 1500 bytes are to be sent in a packet, 40 bytes make up the TCP and IP header together, leaving 1460 bytes of data to be sent. To send this packet, a mathematical operation must be performed on each byte. This operation may be an add operation, where all of the bytes are added together, or some other operation, f(x), which may depend on the application. The time required for such an operation would be t=[f(x)×1460]. This could be a large burden on the microprocessor, greatly slowing down the data transfer process.
As a result, the extra burden of the TCP/IP/PPP protocol causes the PDA to be slow to process, transmit and receive data, and requires large memory storage and processing components, increasing the size and weight of the PDA.
After the PPP negotiation and connection set-up with the connection is complete, the PDA is assigned an IP address. The PDA can then open a TCP connection with the computer. Referring again to the restaurant application, once the TCP connection is opened, the food order is sent to the computer for processing. Once the order transmission to the computer is complete, the communication connection is deconstructed. In order for the waiter to send another order, a new communication connection must be established, and the process is done again.
Therefore, it would be useful to develop a device and method for more efficiently transferring data between a PDA and a computer server that is less burdensome on the digital memory storage and the data processor of the PDA. As will be seen, the invention provides such a device and method that accomplishes these goals in an elegant manner.